home *** CD-ROM | disk | FTP | other *** search
- /*
- * getarg, iargc - return to Fortran a command line argument
- *
- * Usage:
- *
- * character*N c
- * integer i,j
- * integer function iargc
- *
- * call getarg(i,c)
- * j = iargc
- *
- * getarg returns the i-th command line argument of the current process,
- * filled with trailing blanks as needed.
- * The 0th command line argument is the full
- * pathname of the application's executable file.
- *
- * iargc returns the index of the last argument.
- *
- * restrictions:
- * It is up to the FORTRAN programmer to provide
- * a character array that is big enough.
- *
- * notes:
- * The third dummy argument is passed implicitly
- * by the compiler. Accessing this argument is
- * somewhat C compiler dependent and probably a
- * good place to look if this routine stops
- * working under a different compiler.
- *
- * Written for NeXT OS 1.0 by Paul Kunz, SLAC, August 1990
- *
- * Copyright (C) 1990 The Board of Trustees of The Leland Stanford
- * Junior University. All Rights Reserved.
- *
- */
-
- int iargc( int *dummy )
- {
- extern int NXArgc; /* argc saved in crt0 */
-
- return (NXArgc-1);
- }
-
- void getarg( iarg, carray, dummy, esize )
-
- long *iarg; /* pointer to fortran integer*4 */
- char *carray; /* pointer to fortran character array */
- int dummy; /* dummy size for iarg */
- int esize; /* size of fortran character array */
-
- {
- extern int NXArgc; /* argc saved in crt0 */
- extern char **NXArgv; /* argv saved in crt0 */
- int i, j;
- char *c;
-
- i = *iarg;
- j = esize;
- if ( i >= 0 && i < NXArgc ) {
- c = NXArgv[i];
- while (*c) { /* copy characters until null */
- *carray++ = *c++;
- j--;
- }
- }
- for ( ; j > 0 ; j-- ) /* add any trailing blanks needed */
- *carray++ = ' ';
- }
-